// src/utils/pinyinHelper.ts
import pinyin from 'pinyin'

/**
 * 获取字符串的拼音首字母（中英文混合）
 */
export function getInitials(friendList: any): any {
  // 增加字母选项
  friendList.forEach(user => {
    // 使用 pinyin 库生成拼音，返回的是一个二维数组（我们这里只需要拼音的第一个字母）
	let user_name = user.profile.nick? user.profile.nick : user.profile.userID
    const pinyinArray = pinyin(user_name, { style: pinyin.STYLE_FIRST_LETTER });
    // 将拼音的首字母拼接成字符串
    user.pinyin = pinyinArray.map(item => item[0]).join('').toUpperCase();
  });
  
  // 按拼音字段排序
  const sortedFriendList = friendList.sort((a, b) => {
    return a.pinyin.localeCompare(b.pinyin);
  });
  // 增加字母选项
  const result: any[] = []
    
  let currentLetter = '' // 当前正在处理的拼音首字母
  
  sortedFriendList.forEach((item) => {
    const firstLetter = item.pinyin.charAt(0).toUpperCase() // 获取拼音首字母
  
    // 如果当前字母不等于上一个字母，则插入字母数据
    if (firstLetter !== currentLetter) {
      currentLetter = firstLetter
      // 插入一个表示字母的对象
      result.push({ letter: currentLetter })
    }
  
    // 将用户添加到结果列表中
    result.push(item)
  })
  
  return result
}
